// pages/goods_detail/index.js
import { request } from "../../request/index";
import regeneratorRuntime from "../../lib/runtime/runtime";
//加入购物车功能实现思路
//定义加入购物车的点击方法
// 获取购物车中存有的数据
//判断当前商品是否存在购物车中 如果存在也就是index存在 num商品数量++ 并把新的数量重新存入购物车数组中
//如果不存在 就将当前商品存入数组中
//弹出添加成功提示

/**
 * 商品收藏功能
 * 1，获取商品缓存的数组
 * 判断当前商品是否存在于缓存的数组中
 * 如果存在改变收藏的图标颜色
 * 如果不存在什么都不用做
 * 
 * 2，点击收藏按钮时
 * 获取数组
 * 判断数组是否有当前商品
 * 此商品不存在缓存中 改变图标样式 将此商品存入缓存中
 * 如果存在在缓存中移除此商品 改变图标颜色
 */
Page({
  data: {
    goodsDetailList: {},
    isCollect:false//收藏按钮选中状态
  },
  previewImages: {},
  onShow: function() {
    let pages =  getCurrentPages();
    let curPages= pages[pages.length-1];    
    let options = curPages.options
    const { goods_id } = options;
    console.log({ goods_id });
    this.getgoodsDetailsList(goods_id);
  },
  //请求数据
  async getgoodsDetailsList(goods_id) {
    const goodsDetailList = await request({
      url: "/goods/detail",
      data: { goods_id }
    });
    this.previewImages = goodsDetailList;
    let collectOrders = wx.getStorageSync('collect')||[]
    let isCollect = collectOrders.some(v => v.goods_id===this.previewImages.goods_id)
    this.setData({
      goodsDetailList: {
        goods_name: goodsDetailList.goods_name,
        goods_price: goodsDetailList.goods_price,
        goods_introduce: goodsDetailList.goods_introduce,
        pics: goodsDetailList.pics
      },isCollect
    });
  },
  //轮播图点击查看大图
  handlePrevewImage(e) {
    const urls = this.previewImages.pics.map(v => v.pics_mid);
    const current = e.currentTarget.dataset.url;
    wx.previewImage({
      current,
      urls
    });
  },
  //加入购物车
  hanldeCartAdd() {
    //获取购物车现有数据
    let cart = wx.getStorageSync("cart") || [];
    let index = cart.findIndex(v => this.previewImages.goods_id === v.goods_id);
    if (index===-1) {
       this.previewImages.num=1
       this.previewImages.checked=true
       cart.push(this.previewImages)
    } else {
       cart[index].num++
    }
    wx.setStorageSync("cart", cart);
    wx.showToast({
      title: "添加成功",
      icon: "success",
      mask: true
    });
  },
  //点击收藏按钮
  hanldeCollect(){
    let isCollect= false
    //获取缓存数组
    let collect = wx.getStorageSync('collect')||[];
    //获取当前对象索引 如果forEach()没找到当前对象则会返回-1
    let index = collect.findIndex(v=> v.goods_id===this.previewImages.goods_id)
    //如果找到了
    if(index!==-1){
      //点击收藏按钮时执行取消收藏操作 那么就是删除缓存数组中的当前商品
      collect.splice(index,1)
      // 并把选中设置为false
      isCollect=false
      wx.showToast({
        title: '取消收藏',
        mask: true,
      });
    }else{
      //如果不存在就把当前商品存入缓存中
      collect.push(this.previewImages)
      //并把选中值设置为true
      isCollect=true
      wx.showToast({
        title: '收藏成功',
        mask: true,
      });
    }
    //最后存入缓存中
    wx.setStorageSync("collect", collect);
    //把isCollect值存入data中
    this.setData({
      isCollect
    })
  }
});
